<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2012 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// $Id: App.class.php 2702 2012-02-02 12:35:01Z liu21st $


/**
 +------------------------------------------------------------------------------
 * ThinkPHP 精简模式应用程序类
 +------------------------------------------------------------------------------
 */
class App {
	
	/**
     +----------------------------------------------------------
	 * 应用程序初始化
     +----------------------------------------------------------
	 * @access public
     +----------------------------------------------------------
	 * @return void
     +----------------------------------------------------------
	 */
	static public function run() {
		
		// 取得模块和操作名称
		define ( 'MODULE_NAME', App::getModule () ); // Module名称
		define ( 'ACTION_NAME', App::getAction () ); // Action操作
		

		// 记录应用初始化时间
		if (C ( 'SHOW_RUN_TIME' ))
			$GLOBALS ['_initTime'] = microtime ( TRUE );
		
		// 执行操作
		R ( MODULE_NAME . '/' . ACTION_NAME );
		// 保存日志记录
		if (C ( 'LOG_RECORD' ))
			Log::save ();
		return;
	}
	
	/**
     +----------------------------------------------------------
	 * 获得实际的模块名称
     +----------------------------------------------------------
	 * @access private
     +----------------------------------------------------------
	 * @return string
     +----------------------------------------------------------
	 */
	static private function getModule() {
		$var = C ( 'VAR_MODULE' );
		$module = ! empty ( $_POST [$var] ) ? $_POST [$var] : (! empty ( $_GET [$var] ) ? $_GET [$var] : C ( 'DEFAULT_MODULE' ));
		if (C ( 'URL_CASE_INSENSITIVE' )) {
			// URL地址不区分大小写
			define ( 'P_MODULE_NAME', strtolower ( $module ) );
			// 智能识别方式 index.php/user_type/index/ 识别到 UserTypeAction 模块
			$module = ucfirst ( parse_name ( strtolower ( $module ), 1 ) );
		}
		unset ( $_POST [$var], $_GET [$var] );
		return $module;
	}
	
	/**
     +----------------------------------------------------------
	 * 获得实际的操作名称
     +----------------------------------------------------------
	 * @access private
     +----------------------------------------------------------
	 * @return string
     +----------------------------------------------------------
	 */
	static private function getAction() {
		$var = C ( 'VAR_ACTION' );
		$action = ! empty ( $_POST [$var] ) ? $_POST [$var] : (! empty ( $_GET [$var] ) ? $_GET [$var] : C ( 'DEFAULT_ACTION' ));
		unset ( $_POST [$var], $_GET [$var] );
		return $action;
	}

}
;